package linlist;
import java.util.NoSuchElementException;

public class Queue2{
  Knoten first, last;

  public Queue2(){
    first=new Knoten(null);//damit man von Anfang an einen hat...
    last=first;//... der aber schon als entnommen gilt.
  }

  public boolean isEmpty(){return first==last;}

  public void put(Object o){
    Knoten neu=new Knoten(o);
    last.next=neu;
    last=neu;
  }

  public Object take() throws NoSuchElementException{
    if(isEmpty()) throw new NoSuchElementException();
    first=first.next;
    return first.data;
  }

  public static void ausgabe(Queue2 q){
    Knoten lauf=q.first;
    Knoten last=q.last;
    while(lauf!=last){
      lauf=lauf.next;
      System.out.print(lauf.data+" ");
    }
    System.out.println();
  }

  public static class Knoten{
    Object data;
    int wichtig;
    Knoten next;
    
    public Knoten(Object o){this(o, 0);}
    
    public Knoten(Object o, int w){
      data=o;
      wichtig=w;
    }
  }

  public static void main(String[] args){
    Queue2 q=new Queue2();
    q.put("Hallo"); q.put("liebe"); q.put("Freunde");
    Object o=q.take(); q.put("der"); o=q.take();
    ausgabe(q);
  }
}